#include "next_node.h"
#include "is_eq.h"

//вычисление следующего начального приближения
std::valarray<double> next_node (std::valarray<double> this_node, std::valarray<double> node0, std::valarray<double> node_max, std::valarray<double> node_step) {
    std::valarray<double> exit;
    for (unsigned k=0; k<this_node.size(); k++) {
        if ((node_step[k]!=0) && ((this_node[k] <= node_max[k]-node_step[k])
            || (IsEq(this_node[k], node_max[k]-node_step[k], 1e-11)))) {
            this_node[k] += node_step[k];
            return this_node;
        } else this_node[k] = node0[k];
    }
    return exit;
}
